package ar.uade.distribuidas.tpo.dba.servicio;

import java.rmi.RemoteException;
import java.rmi.server.UnicastRemoteObject;

import com.google.common.base.Preconditions;

import ar.uade.distribuidas.tpo.base.dominiodto.SolicitudDeCotizacionDTO;
import ar.uade.distribuidas.tpo.base.remoto.IGestionSolicitudDeCotizacion;
import ar.uade.distribuidas.tpo.dba.dao.SolicitudDeCotizacionDAO;
import ar.uade.distribuidas.tpo.dba.dominio.SolicitudDeCotizacion;

public class GestionSolicitudDeCotizacion extends UnicastRemoteObject implements IGestionSolicitudDeCotizacion {

	private SolicitudDeCotizacionDAO scDAO;

	protected GestionSolicitudDeCotizacion() throws RemoteException {
		super();
		this.scDAO = SolicitudDeCotizacionDAO.getInstance();
	}

	/**
	 * 
	 */
	private static final long serialVersionUID = 1L;

	@Override
	public void saveSolicitudDeCotizacion(SolicitudDeCotizacionDTO sc) {
		Preconditions.checkNotNull(sc.getId());
		Preconditions.checkNotNull(sc.getCliente());
		Preconditions.checkNotNull(sc.getFecha());
		Preconditions.checkNotNull(sc.getItems());

		this.scDAO.persist(SolicitudDeCotizacion.fromDTO(sc));
	}

	@Override
	public void updateSolicitudDeCotizacion(SolicitudDeCotizacionDTO c) {
		// TODO Auto-generated method stub
	}

	@Override
	public SolicitudDeCotizacionDTO getSolicitudDeCotizacion(int id) {
		return ((SolicitudDeCotizacion) scDAO.get(SolicitudDeCotizacion.class, id)).toDTO();
	}

	public SolicitudDeCotizacionDAO getScDAO() {
		return scDAO;
	}

	public void setScDAO(SolicitudDeCotizacionDAO scDAO) {
		this.scDAO = scDAO;
	}

}
